/*----------------------------------------------------------*/
/*                                                          */
/*   Turbo Vision 1.0                                       */
/*   Copyright (c) 1991 by Borland International            */
/*                                                          */
/*   Turbo Vision TVEDIT header file                        */
/*----------------------------------------------------------*/

class TMenuBar;
class TStatusLine;
class TEditWindow;
class TDialog;

const
  cmOpen       = 100,
  cmNew        = 101,
  cmChangeDrct = 102,
  cmDosShell   = 103,
  cmCalculator = 104,
  cmShowClip   = 105,
  cmGets       = 106,
  cmOpenexe    = 107,
  cmOpencom    = 108,
  cmOpenbat    = 109,
  cmOpenprg    = 110,
  cmHDdiskC    = 111,
  cmHDdiskD    = 112,
  cmDiskDD     = 113,
  cmDiskHD     = 114,
  cmHDmark     = 115,
  cmHDpro      = 116,
  cmMarkHD     = 117,
  cmProHD      = 118,
  cmMarkDD     = 119,
  cmProDD      = 120,
  cmDistrace   = 121,
  cmDisunasm   = 122,
  cmAbout      = 123;

class App : public TApplication
{

public:

    App();

    virtual void handleEvent( TEvent& event );
    static TMenuBar *initMenuBar( TRect );
    static TStatusLine *initStatusLine( TRect );
    virtual void outOfMemory();

private:

    TEditWindow *openEditor( const char *fileName, Boolean visible );
    void fileOpen();
    void fileNew();
    void changeDir();
    void dosShell();
    void showClip();
    void tile();
    void cascade();
    void getstr();
    void Openexe();
    void Opencom();
    void Openbat();
    void Openprg();
    void HDdiskC();
    void HDdiskD();
    void DiskDD();
    void DiskHD();
    void HDmark();
    void HDpro();
    void MarkHD();
    void ProHD();
    void MarkDD();
    void ProDD();
    void Distrace();
    void Disunasm();
    void about();
};

extern TEditWindow *clipWindow;

ushort execDialog( TDialog *d, void *data );
TDialog *getstring();
ushort doEditDialog( int dialog, ... );
